﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace UricaoWeb.LogicaDeNegocios.Menu
{
    public class Plato
    {
        #region atributos
        private int _IdPlato;
        private string _nombrePlato;
        private float _precioPlato;
        private string _fotoPlato;
        private string _detallePlato;
        private bool _compartirPlato;
        private bool _activoPlato;
        #endregion

        #region get/set

        public int IdPlato
        {
            get { return _IdPlato; }
            set { _IdPlato = value; }
        }

        public string NombrePlato
        {
            get { return _nombrePlato; }
            set { _nombrePlato = value; }
        }

        public float PrecioPlato
        {
            get { return _precioPlato; }
            set { _precioPlato = value; }
        }

        public string FotoPlato
        {
            get { return _fotoPlato; }
            set { _fotoPlato = value; }
        }

        public string DetallePlato
        {
            get { return _detallePlato; }
            set { _detallePlato = value; }
        }

        public bool CompartirPlato
        {
            get { return _compartirPlato; }
            set { _compartirPlato = value; }
        }

        public bool ActivoPlato
        {
            get { return _activoPlato; }
            set { _activoPlato = value; }
        }
        #endregion

        #region Metodos
        ///<sumary>
        ///Constructor por defecto
        ///Parámetros:(no posee)
        ///Retorno: (no posee)
        ///Excepeciones: (no posee)
        ///</sumary>
        public Plato()
        {
            this.IdPlato = 0;
            this.NombrePlato = "";
            this.PrecioPlato = 0;
            this.FotoPlato = "";
            this.DetallePlato = "";
            this.CompartirPlato = false;
            this.ActivoPlato = false;
        }

        ///<sumary>
        ///Constructor de todos los atributos de la clase
        ///Parámetros:
        ///idPlato: id del plato, nombrePlato: nombre del plato, precioPlato: tipo del plato, detallesPlato: detalles del plato, fotoPlato: cadena que contiene la direccion con la ruta de la imagen, CompartirPlato true: si es compartido, false: si es individual, activoPlato: necesario para saber si un usuario esta en todo el sistema
        ///Retorno: (no posee)
        ///Excepeciones: (no posee)
        ///</sumary>
        public Plato(int idPlato, string nombrePlato, float precioPlato, string fotoPlato, string detallePlato, bool CompartirPlato, bool activoPlato)
        {
            this.IdPlato = idPlato;
            this.NombrePlato = nombrePlato;
            this.PrecioPlato = precioPlato;
            this.FotoPlato = fotoPlato;
            this.DetallePlato = detallePlato;
            this.CompartirPlato = CompartirPlato;
            this.ActivoPlato = activoPlato;
        }

        ///<sumary>
        ///Sobreescritura del metodo Equals
        ///Parámetros:Objeto
        ///Retorno: true: los objetos son iguales, false: no son iguales
        ///Excepeciones: (no posee)
        ///</sumary>
        public override bool Equals(object obj)
        {
            if (obj == null)
                return false;

            Plato plato = obj as Plato;


            return ((this.IdPlato == plato.IdPlato) && (this.NombrePlato == plato.NombrePlato) && (this.PrecioPlato == plato.PrecioPlato) && (this.FotoPlato == plato.FotoPlato) && (this.DetallePlato == plato.DetallePlato) && (this.CompartirPlato == plato.CompartirPlato) && (this.ActivoPlato == plato.ActivoPlato));
        }
        #endregion


    }
}